package com.example.onlinemarket.dao;


import com.example.onlinemarket.bean.Good;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.io.InputStream;
import java.util.List;
@Mapper
public interface GoodDao {
    int getShopIdByGoodId(int goodId);//根据鲜花ID获取商铺ID
    boolean isGoodExist(Integer goodId);//查询鲜花是否存在
    Good getGoodById(Integer goodId);//按鲜花ID获取鲜花对象
    List<Good> getUpshelfGoodsByUserId(Integer userId);//按卖家ID获取全部上架鲜花
    List<Good> getDownshelfGoodsByUserId(Integer userId);//按卖家ID获取全部上架鲜花
    boolean updateGoodInfo(@Param("good") Good good, @Param("photo") InputStream is);//更新鲜花信息
    boolean updateGoodStatus(@Param("goodId") Integer goodId, @Param("status") boolean status);//更新鲜花状态
    boolean delGoodById(Integer goodId);//按鲜花ID删除鲜花
    Integer checkForUpShelfGoodSearching(@Param("searchContent") String searchContent, @Param("species") String species);//按内容和类型模糊匹配鲜花
    List<Good> searchForUpshelfGoodByPages(@Param("searchContent") String searchContent, @Param("species") String species, @Param("recorded") Integer recorded, @Param("pageSize") Integer pageSize);//分页查询鲜花
    List<Good> searchForUpshelfGoodByPagesAll();//分页查询鲜花

    Boolean isGoodUpshelf(Integer goodId);//判断鲜花是否上架
    Integer addGood(@Param("good") Good good, @Param("photo") InputStream is);//添加新鲜花
    boolean updateGoodInfoWithoutImg(Good good);//更新资料不更新图片
    List<Integer> getShopAllGoodId(Integer userId);//获取所有鲜花ID
    Double getGoodSellPriceByGoodId(Integer goodId);//根据鲜花ID获取鲜花售价
    List<Good> getGoodIdAndGoodNum(Integer orderId);//根据订单ID获取对应鲜花ID和下单的鲜花数量
    boolean updateGoodSellNumAndQuantity(@Param("goodId")Integer goodId, @Param("goodNum")Integer goodNum);//更新鲜花销量
}
